import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class GamePanel extends JFrame {
    //窗口长度
    int width=800;
    int height=610;
    //指针图片
    Image select=Toolkit.getDefaultToolkit().getImage("Images_01/Leopard_2A4.png");
    //指针初始纵坐标
    int y=150;
    //游戏模式 0 游戏开始，1 单人模式 2.双人模式
    int state =0;

    int a=1;

    //窗口的启动方法
    public void launch(){
        //标题
        setTitle("坦克大战");
        //窗口初始大小
        setSize(width,height);
        //使屏幕居中
        setLocationRelativeTo(null);
        //添加关闭时间
        setDefaultCloseOperation(3);
        //用户不能调整大小
        setResizable(false);
        //使窗口可见
        setVisible(true);
        //添加键盘监视器
        this.addKeyListener(new KeyMonitor());

        //出错重绘
        while(true){
            repaint();
            try{
                Thread.sleep(25);
            }catch(Exception e){
                e.printStackTrace();
            }
        }



    }
    //窗口上色
    public void paint(Graphics g){
        //设置画笔颜色
        g.setColor(Color.gray);
        //绘制实心矩形
        g.fillRect(0,0,width,height);
        //挂变画笔颜色
        g.setColor(Color.blue);
        //改变文字大小和样式
        g.setFont(new Font("仿宋",Font.BOLD,50));

        if(state==0){
            //添加文字
            g.drawString("选择游戏模式",220,100);
            g.drawString("单人模式",220,200);
            g.drawString("双人模式",220,300);
            //绘制指针
            //g.drawImage(select,160,y,null);
            // 绘制指针并指定目标大小
            int targetWidth = 90; // 设置目标宽度
            int targetHeight = 50; // 设置目标高度
            g.drawImage(select, 100, y, targetWidth, targetHeight, null);
        }
        //state等于1或2时游戏开始
        else if (state == 1 || state == 2) {
            g.drawString("单人模式",220,100);
        }
        else{
            g.drawString("双人模式",220,200);
        }
        g.drawString("按1或2选择游戏模式",220,440);
    }

    class KeyMonitor extends KeyAdapter{
        //按下键盘
        @Override
        public void keyPressed(KeyEvent e){
            //返回键值
            System.out.println(e.getKeyChar());
            int key=e.getKeyCode();
            switch (key){
                case KeyEvent.VK_1:
                    a=1;
                    y=150;
                    break;
                case KeyEvent.VK_2:
                    a=2;
                    y=250;
                    break;
                case KeyEvent.VK_ENTER://按下回车键给state赋值
                    state=a;
                    break;
            }
        }
    }

    public static void main(String[] args){
        GamePanel gp=new GamePanel();
        gp.launch();
    }
}
